package zzh.com.kangkenuo.newutlis;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.widget.Toast;

import com.meizu.cloud.pushsdk.PushManager;
import com.xiaomi.mipush.sdk.MiPushClient;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

import cn.jpush.android.api.JPushInterface;
import cn.sharesdk.onekeyshare.OnekeyShare;
import zzh.com.kangkenuo.Constants;
import zzh.com.kangkenuo.MyApplication;
import zzh.com.kangkenuo.PublicRequest;
import zzh.com.kangkenuo.utils.TotalFunction;
import zzh.com.kangkenuo.utils.Utils;
import zzh.com.kangkenuo.utils.WxShareAndLoginUtils;
import zzh.com.kangkenuo.utils.X5WebView;

/**
 * @author zzh
 * @Name:
 * @Description:
 * @date
 * @time
 * @copyright
 */
public class Resfine {
    private X5WebView webView;
    private AppCompatActivity appCompatActivity;

    public Resfine(AppCompatActivity activity, X5WebView context) {
        this.webView = context;
        this.appCompatActivity = activity;
    }

    // 向webview发出信息
    private void enableX5FullscreenFunc() {
        if (webView.getX5WebViewExtension() != null) {
            Toast.makeText(appCompatActivity, "开启X5全屏播放模式", Toast.LENGTH_LONG).show();
            Bundle data = new Bundle();
            data.putBoolean("standardFullScreen", false);// true表示标准全屏，false表示X5全屏；不设置默认false，
            data.putBoolean("supportLiteWnd", false);// false：关闭小窗；true：开启小窗；不设置默认true，
            data.putInt("DefaultVideoScreen", 2);// 1：以页面内开始播放，2：以全屏开始播放；不设置默认：1
            webView.getX5WebViewExtension().invokeMiscMethod("setVideoParams",
                    data);
        }
    }

    private void disableX5FullscreenFunc() {
        if (webView.getX5WebViewExtension() != null) {
            Toast.makeText(appCompatActivity, "恢复webkit初始状态", Toast.LENGTH_LONG).show();
            Bundle data = new Bundle();
            data.putBoolean("standardFullScreen", true);// true表示标准全屏，会调起onShowCustomView()，false表示X5全屏；不设置默认false，
            data.putBoolean("supportLiteWnd", false);// false：关闭小窗；true：开启小窗；不设置默认true，
            data.putInt("DefaultVideoScreen", 2);// 1：以页面内开始播放，2：以全屏开始播放；不设置默认：1
            webView.getX5WebViewExtension().invokeMiscMethod("setVideoParams",
                    data);
        }
    }

    private void enableLiteWndFunc() {
        if (webView.getX5WebViewExtension() != null) {
            Toast.makeText(appCompatActivity, "开启小窗模式", Toast.LENGTH_LONG).show();
            Bundle data = new Bundle();
            data.putBoolean("standardFullScreen", false);// true表示标准全屏，会调起onShowCustomView()，false表示X5全屏；不设置默认false，
            data.putBoolean("supportLiteWnd", true);// false：关闭小窗；true：开启小窗；不设置默认true，
            data.putInt("DefaultVideoScreen", 2);// 1：以页面内开始播放，2：以全屏开始播放；不设置默认：1
            webView.getX5WebViewExtension().invokeMiscMethod("setVideoParams",
                    data);
        }
    }

    private void enablePageVideoFunc() {
        if (webView.getX5WebViewExtension() != null) {
            Toast.makeText(appCompatActivity, "页面内全屏播放模式", Toast.LENGTH_LONG).show();
            Bundle data = new Bundle();
            data.putBoolean("standardFullScreen", false);// true表示标准全屏，会调起onShowCustomView()，false表示X5全屏；不设置默认false，
            data.putBoolean("supportLiteWnd", false);// false：关闭小窗；true：开启小窗；不设置默认true，
            data.putInt("DefaultVideoScreen", 1);// 1：以页面内开始播放，2：以全屏开始播放；不设置默认：1
            webView.getX5WebViewExtension().invokeMiscMethod("setVideoParams",
                    data);
        }
    }

    @JavascriptInterface
    public void onX5ButtonClicked() {
        enableX5FullscreenFunc();
    }

    @JavascriptInterface
    public void onCustomButtonClicked() {
        this.disableX5FullscreenFunc();
    }

    @JavascriptInterface
    public void onLiteWndButtonClicked() {
        this.enableLiteWndFunc();
    }

    @JavascriptInterface
    public void onPageVideoClicked() {
        this.enablePageVideoFunc();
    }


    @JavascriptInterface
    public void wechatLogin() {
        WxShareAndLoginUtils.WxLogin();
    }

    @JavascriptInterface
    public void mobileLogin(String po) {
        String[] strings = po.split(",");
        TotalFunction.WriteData(MyApplication.getContext(), Constants.MOBILE, strings[0]);
        TotalFunction.WriteData(MyApplication.getContext(), Constants.PASSWORD, strings[1]);
        Map<String, String> addMap = new HashMap<>();
        String mz_pushid = String.valueOf(PushManager.getPushId(MyApplication.getContext()));
        String jpush_id = String.valueOf(JPushInterface.getRegistrationID(MyApplication.getContext()));
        addMap.put("op", "mobile_login");
        addMap.put("mobile", strings[0]);
        addMap.put("password", strings[1]);
        String carrier = android.os.Build.MANUFACTURER;   //获取手机厂商：BRAND /MANUFACTURER
        if (carrier.equalsIgnoreCase("Meizu")) {
            addMap.put("mz_pushid", mz_pushid);
        } else if (carrier.equalsIgnoreCase("Xiaomi")) {
        } else {
            addMap.put("jpush_id", jpush_id);
        }
        MiPushClient.setUserAccount(MyApplication.getContext(), strings[0], "");
        PublicRequest.doPostRequest(Constants.URL, addMap, "mobileLogin");
    }

    @JavascriptInterface
    public void logout() {
        TotalFunction.RemoveDataAll(MyApplication.getContext());
    }

    @JavascriptInterface
    public void oneKeyShare(String po) {
        try {
            Log.e("stringpo", po);
            JSONObject jsonObject = new JSONObject(po);
            OnekeyShare oks = new OnekeyShare();
            /* //关闭sso授权
           oks.disableSSOWhenAuthorize();*/
            // title标题，印象笔记、邮箱、信息、微信、人人网和QQ空间等使用
            oks.setTitle(jsonObject.optString("title"));
            // titleUrl是标题的网络链接，QQ和QQ空间等使用
            //oks.setTitleUrl(url);
            // text是分享文本，所有平台都需要这个字段
            oks.setText(jsonObject.optString("desc"));
            // imagePath是图片的本地路径，Linked-In以外的平台都支持此参数
            // oks.setImagePath(pic);//确保SDcard下面存在此张图片
            //oks.setImageUrl(pic);
            boolean imgUrl = Utils.checkURL(jsonObject.optString("imgUrl"));
            if (imgUrl == false) {
                oks.setImageUrl("http://weixin.kknabc.com/addons/ewei_shop/template/mobile/default/static/images/logo.jpg");
            } else {
                oks.setImageUrl(jsonObject.optString("imgUrl"));
            }
            // url仅在微信（包括好友和朋友圈）中使用
            oks.setUrl(jsonObject.optString("link"));
            // comment是我对这条分享的评论，仅在人人网和QQ空间使用
            // oks.setComment(title);
            // site是分享此内容的网站名称，仅在QQ空间使用
            // oks.setSite("康坷诺商城");
            // siteUrl是分享此内容的网站地址，仅在QQ空间使用
            //oks.setSiteUrl(jsonObject.optString("title"));
            // 启动分享GUI
            oks.show(MyApplication.getContext());
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }


}
